#pragma once
#include "DXAMLCommon.h"
#include "IPALDownloadResponse.h"
#include "IPALStream.h"

struct IPALDownloadResponseCallback
{
public:
	virtual XUINT32 AddRef() = 0;
	virtual XUINT32 Release() = 0;
	virtual HRESULT MakeSeekable() = 0;
	virtual unsigned int AcceptsBackgroundThreadCallbacks() = 0;
	virtual HRESULT GotResponse(IPALDownloadResponse *pIResponse, int xrStatus) = 0;
	virtual HRESULT GotStream(IPALStream *pIPALStream, CXString *pstrMime, int fRedirected, CXString *pstrFinalUrl, CXString *pstrHeaders) = 0;
	virtual HRESULT GotData(unsigned __int64 uiSize, unsigned __int64 uiTotalSize) = 0;
	virtual HRESULT EndData(unsigned __int64 uiSize, unsigned __int64 uiTotalSize) = 0;

};